package com.yuexinduo.mylibrary.util;

import java.lang.reflect.ParameterizedType;

/**
 * @author DeMon
 * @date 2019/8/19
 * @email 757454343@qq.com
 * @description
 */
public class TUtil {

    public static <T> T getT(Object o) {
        try {
            return ((Class<T>) ((ParameterizedType) (o.getClass()
                    .getGenericSuperclass())).getActualTypeArguments()[0]).newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

//    Type type = this.getClass().getGenericSuperclass(); // generic 泛型
//       if(type instanceof ParameterizedType){
//                   // 强制转化“参数化类型”
//                   ParameterizedType parameterizedType = (ParameterizedType) type;
//                   // 参数化类型中可能有多个泛型参数
//                   Type[] types = parameterizedType.getActualTypeArguments();
//                   // 获取数据的第一个元素(User.class)
//                   clazz = (Class<T>) types[0]; // com.oa.shore.entity.User.class
//               }
}
